package com.sf.sms.software.dao;

import com.sf.sms.software.entity.Software;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 软件操作：数据操作类
 * Created by zhangbo 01084074 on 2016/8/25.
 */
public interface SoftwareMapper {

    /**
     * 查询所有软件
     *
     * @return  软件集合
     *
     * @author  zhangbo 01084074 on 2016/8/31.
     */
    List<Software> getAllSoftware();

    /**
     * 根据软件分类查询软件
     *
     * @param categoryId    软件分类主键id
     * @return  软件集合
     *
     * @author  zhangbo 01084074 on 2016/8/27.
     */
    List<Software> getSoftwareByCategory(Long categoryId);
    
    /**
     * 根据软件id查询软件
     *
     * @param  id    软件主键id
     * @return  软件集合
     * @author  xiejun 2016/9/1
     */
    Software getSoftwareById(Long id);
    
    
    /**
     * 根据软件id更新软件
     *
     * @param  id    软件主键id
     * @return  软件集合
     * @author  xiejun 2016/9/1
     */
    int updateSoftwareById(Software software);

    /**
     * 保存软件信息
     * @param software
     * @return
     */
    int addSoftware(Software software);

    /**
     * 根据软件状态查询软件
     *
     * @param status    软件状态：0-提交，1-审核中，2-通过
     * @return  软件集合
     *
     * @author  zhangbo 01084074 on 2016/9/1.
     */
    List<Software> getSoftwareByStatus(Integer status);

    /**
     * 根据软件分类查询正在审核中的软件
     *
     * @param categoryId    软件分类主键id
     * @return  软件集合
     *
     * @author  zhangbo 01084074 on 2016/8/27.
     */
    List<Software> getReviewSoftwareByCategory(Long categoryId);

    /**
     * 根据搜索内容，查询软件
     *
     * @param content   搜索内容
     * @return  软件集合
     *
     * @author  zhangbo 01084074 on 2016/9/5.
     */
    List<Software> searchSoftware(String content);
}
